<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8">
    <link href="../../style.css" rel="stylesheet" type="text/css">
    <link rel="icon" href="../../images/PETSc_RGB-logo.png" type="image/png" sizes="16x16">
    <title>PETSc: Documentation: Changes: 2.1.1</title>
  </head>
  <body>

    <div id="logo">
      <h1>PETSc</h1>
    </div>

    <div id="header">
      <h1><!--begin-->Documentation: Changes: 2.1.1<!--end--></h1>
    </div>

    <hr>

    <div id="sidebar">
      <ul>
        <li><a href="../../index.html">Home</a></li>
        <li><a href="../../download/index.html">Download</a></li>
        <li><a href="../../features/index.html">Features</a></li>
        <li>
          <a href="../../documentation/index.html">Documentation</a>
          <ul>
            <li><a href="../index.html">Manual pages and Users Manual</a></li>
            <li><a href="../referencing.html">Referencing PETSc</a></li>
            <li><a href="../tutorials/index.html">Tutorials</a></li>
            <li><a href="../installation.html">Installation</a></li>
            <li><a href="../saws.html">SAWs</a></li>
            <li>
              <a href="index.html">Changes</a>
              <ul>
                <li><a href="dev.html">dev</a></li>
                <li><a href="313.html">3.13</a></li>
                <li><a href="312.html">3.12</a></li>
                <li><a href="311.html">3.11</a></li>
                <li><a href="310.html">3.10</a></li>
                <li><a href="39.html">3.9</a></li>
                <li><a href="38.html">3.8</a></li>
                <li><a href="37.html">3.7</a></li>
                <li><a href="36.html">3.6</a></li>
                <li><a href="35.html">3.5</a></li>
                <li><a href="34.html">3.4</a></li>
                <li><a href="33.html">3.3</a></li>
                <li><a href="32.html">3.2</a></li>
                <li><a href="31.html">3.1</a></li>
                <li><a href="300.html">3.0.0</a></li>
                <li><a href="233.html">2.3.3</a></li>
                <li><a href="232.html">2.3.2</a></li>
                <li><a href="231.html">2.3.1</a></li>
                <li><a href="230.html">2.3.0</a></li>
                <li><a href="221.html">2.2.1</a></li>
                <li><a href="220.html">2.2.0</a></li>
                <li><a href="216.html">2.1.6</a></li>
                <li><a href="215.html">2.1.5</a></li>
                <li><a href="213.html">2.1.3</a></li>
                <li><a href="212.html">2.1.2</a></li>
                <li><span class="current">2.1.1</span></li>
                <li><a href="21.html">2.1.0</a></li>
                <li><a href="2029.html">2.0.29</a></li>
                <li><a href="2028.html">2.0.28</a></li>
                <li><a href="2024.html">2.0.24</a></li>
                <li><a href="2022.html">2.0.22</a></li>
                <li><a href="2018-21.html">2.0.18-21</a></li>
                <li><a href="2017.html">2.0.17</a></li>
                <li><a href="2016.html">2.0.16</a></li>
                <li><a href="2015.html">2.0.15</a></li>
              </ul>
            </li>
            <li><a href="../bugreporting.html">Bug Reporting</a></li>
            <li><a href="../codemanagement.html">Code Management</a></li>
            <li><a href="../faq.html">FAQ</a></li>
            <li><a href="../license.html">License</a></li>
            <li><a href="../linearsolvertable.html">Linear Solver Table</a></li>
            <li><a href="../nonlinearsolvertable.html">Nonlinear Solver Table</a></li>
	    <li><a href="../taosolvertable.html">TAO Solver Table</a></li>
          </ul>
        </li>
        <li><a href="../../publications/index.html">Applications/Publications</a></li>
        <li><a href="../../miscellaneous/index.html">Miscellaneous</a></li>
        <li><a href="../../miscellaneous/external.html">External Software</a></li>
        <li><a href="https://docs.petsc.org/en/latest/developers/index.html">Developers Site</a></li>
      </ul>
    </div>

    <!--begin-->

    <style type="text/css">
      h2 {
        color: red;
      }

      h4 {
        font-weight: bold;
        text-decoration: underline;
      }
    </style>

    <div id="main">

      <div align="center">
        <h2><a name="CHANGES">CHANGES</a> in PETSc 2.1.1 (see new <a href="#Features">features</a>)</h2>
      </div>

      <h4>General:</h4>

      <ul>
        <li>Scalar -&gt; PetscScalar (and added PetscReal)</li>

        <li>
          The make files are reorganized. bmake/${PETSC_ARCH}/base_variables
          -&gt; variables, and base.site -&gt; packages. base -&gt;rules.
        </li>

        <li>
          If using makefiles from earlier version of PETSc, change
          <ul>
            <li><code>include ${PETSC_DIR}/bmake/${PETSC_ARCH}/base</code></li>
          </ul>
          to
          <ul>
            <li><code>include ${PETSC_DIR}/conf/base</code></li>
          </ul>
        </li>

        <li>
          The windows build of PETSc with win32_gnu, win32_intel and
          win32_mpich now default to using MPICH-1.2.3The complex version of
          the PETSc libraries can only be installed with C++ compilers that
          provide the std::complex implementation.
        </li>
      </ul>

      <h4>AO (Application Orderings):</h4>
      <h4>TS (Timestepping Solvers):</h4>
      <h4>DMMG</h4>

      <ul>
        <li>
          Default Krylov method on outer linear solver is now FGMRES instead
          of GMRES. Also default multigrid type is now full instead of
          multiplicative
        </li>
      </ul>

      <h4>SNES (Nonlinear Solvers):</h4>
      <h4>SLES (Linear Solvers):</h4>
      <h4>KSP (Krylov Subspace Methods):</h4>

      <ul>
        <li>
          All KSP methods with left preconditioning use the preconditioned
          residual by default (before CG, CR used the unpreconditioned
          residual). Use -ksp_norm_type &lt;none,preconditioned,unpreconditioned,natural&gt;
          to change it, see next bullet.
        </li>

        <li>
          <code>KSPSetInitialGuessNonzero(), KSPSetComputeSingularValues(), KSPSetComputeEigenvalues(),</code>
          all now take a PetscTruth as the second argument allowing them to each be toggled on or off
        </li>

        <li>
          <code>KSPSetAvoidNorms(), KSPSetUseUnpreconditionedResidual(),
            KSPSetComputeResidual()</code> have all been merged into
          <code>KSPSetNormType()</code>
        </li>
      </ul>

      <h4>PC (Preconditioners):</h4>
      <h4>MAT (Matrices):</h4>

      <ul>
        <li>Added additional local relaxation argument to <code>MatRelax()</code></li>

        <li>
          Added additional argument to <code>MatAXPY()</code>
          <ul>
            <li>MatSNESMFFormJacobian() has been renamed to MatSNESMFComputeJacobian()</li>
            <li>added another field to MatLUInfo and MatILUInfo</li>
            <li>MatCreate() now requires a call to MatSetType() or MatSetFromOptions()</li>
            <li>The MatType is assigned in either of these calls.</li>
          </ul>
        </li>
      </ul>

      <h4>DA (Distributed Arrays):</h4>

      In order to set the grid sizes with -da_grid_x, -da_grid_y, -da_grid_z
      one must pass in negative values for the M, N, and P arguments in the call
      to DACreateXX(). If values are not set from the options database then the
      absolute value of the M,N,P is used as the default.

      <ul>
        <li>Changed DAGetColoring() to two routines, DAGetColoring() and DAGetMatrix()</li>
      </ul>

      <h4>VEC (Vectors):</h4>

      <ul>
        <li>Changed VecCreate() to no longer take in size arguments. Use VecCreate() &amp; VecSetSizes()</li>
      </ul>

      <h4>IS (Index Sets):</h4>

      <ul>
        <li>Changed IS_COLORING_LOCAL to IS_COLORING_GHOSTED and IS_COLORING_GLOBAL to IS_COLORING_LOCAL</li>
      </ul>

      <h4>General:</h4>

      <code>PetscOptionsGetDouble()</code> is now <code>PetscOptionsGetReal()</code>

      <h4>Draw (Graphics):</h4>
      <h4>Viewers:</h4>
      <h4>System:</h4>
      <h4>Error Handling:</h4>
      <h4>Event Logging:</h4>

      Logging functionality is completely reworked. Now one can register new
      stages, classes and events. Every event is associated with a class. So,
      users would have to create a class for all userevents.

      <ul>
        <li><code>PetscLogStageRegister()</code> now takes an int * as the first argument</li>
        <li><code>PetscLogEventRegister()</code> takes an int as the third argument, not a char *</li>
      </ul>

      <h4>Fortran Interface:</h4>

      <div align="center">
        <h2>New features in PETSc 2.1.1 (see <a href="#CHANGES">changes</a> above)</h2>
      </div>

      <h4>General:</h4>

      <ul>
        <li>
          configure can now be used to build PETSc on some architectures.
          Currently tested on linux, IRIX, solaris machines.We'd like your
          feedback on this feature; please send <code>configure_petsc.log</code> and
          <code>config.log</code>when reporting problems with configure.
        </li>

        <li>Added support for ESI vectors and matrices. Use BOPT=g_c++ or O_c++Better</li>

        <li>support for automatic differentiation with ADIC</li>
      </ul>

      <h4>AO (Application Orderings):</h4>
      <h4>TS (Timestepping Solvers):</h4>
      <h4>SNES (Nonlinear Solvers):</h4>
      <h4>SLES (Linear Solvers):</h4>
      <h4>KSP (Krylov Subspace Methods):</h4>
      <h4>PC (Preconditioners):</h4>

      <ul>
        <li>added -pc_lu_zeropivot and -pc_ilu_zeropivot (still need function interfaces)</li>
      </ul>

      <h4>MAT (Matrices):</h4>
      <h4>DA (Distributed Arrays):</h4>

      Added DAGetArray() and DARestoreArray() that give workspace appropriate
      for a local function. These may be used in routines that diverentiated
      with ADIC:-)

      <h4>VEC (Vectors):</h4>

      <ul>
        <li>
          Added the utility routines which do special cases of vecscatters
          VecConvertMPIToSeqAll(),VecConvertMPIToMPIZero()
        </li>
      </ul>

      <h4>IS (Index Sets):</h4>
      <h4>PF:</h4>
      <h4>Draw (Graphics):</h4>

      <ul>
        <li>added DrawEllipse()</li>
      </ul>

      <h4>Viewers:</h4>

      <ul>
        <li>added PetscViewerASCIISetMode()</li>
      </ul>

      <h4>System:</h4>
      <h4>Error Handling:</h4>
      <h4>Event Logging:</h4>
      <h4>Fortran Interface:</h4>

    </div>

    <!--end-->

    <hr>

  </body>
</html>
